// 1-100内能被7整除的数
// var a = 1;
// while (a < 100) {
//   if (a % 7 == 0) {
//     console.log(a);
//   }
//   a++;
// }

// var i = 0;
// // while (i > 10) {
// // document.write(i)
// // }
// do{
//  document.write("<p>班级内有"+ i +"个同学</p>" )
// }while(i>10)

// 跳出整个循环
// for (var i = 0; i < 10; i++) {
//   if (i == 3) {
//     break;
//   }
//   document.write("The Number Is" + i + "</br>");
// }

// 跳出当前循环
// for (var i = 0; i < 10; i++) {//实际上是跳过3
//  if (i == 3) {
//  continue
//  }
//  document.write("The Number Is" + i + "</br>");
// }

// let sum = 0;
// for(let i = 100; i<=200; i++) {
//   sum += i;
// }
// console.log(sum)

// for (var i = 0; i <= 1; i++) {
//   console.log("i:" + i);
//   for (var j = 0; j < i; j++) {
//     console.log("j:" + j);
//   }
// }

// i:0
// i:1
// j:0

// for第一层每执行一次，第二次要走完
// for (var i = 1; i <= 9; i++) {
//   //⾏数
//   for (var j = 1; j <= i; j++) {
//     //列数
//     document.write(
//       "<span>" + j + "&nbsp;x&nbsp;" + i + "&nbsp;=&nbsp;" + i * j + "</span> "
//     );
//   }
//   document.write("<br/>");
// }

// // 冒泡排序
// function bubbleSort(arr) {
//   let n = arr.length;
//   for (let i = 0; i < n-1; i++) {
//     for (let j = 0; j < n - i - 1; j++) {
//       if (arr[j] > arr[j + 1]) {
//         let tmp = arr[j];
//         arr[j] = arr[j + 1];
//         arr[j + 1] = tmp;
//       }
//     }
//   }
//   return arr;
// }

// let arr = [4, 6, 3, 9];
// console.log(bubbleSort(arr));

// let arr = [
//   {
//     groupId: "1",
//     groupName: "分组1",
//     groupItem: [
//       {
//         name: "小名",
//         age: 18,
//       },
//       {
//         name: "小紫",
//         age: 18,
//       },
//       {
//         name: "小效率",
//         age: 18,
//       },
//     ],
//   },
//   {
//     groupId: "2",
//     groupName: "分组2",
//     groupItem: [
//       {
//         name: "小名1",
//         age: 18,
//       },
//       {
//         name: "小紫3",
//         age: 18,
//       },
//       {
//         name: "小效率3", // 键值对
//         age: 18,
//       },
//     ],
//   },
// ];

// // arr[0].groupName;
// for(let i = 0; i<arr.length; i++) {
//   document.write(arr[i].groupId)
//   document.write(arr[i].groupName)
//   document.write('<br>')
//   for(let j = 0; j<arr[i].groupItem.length; j++) {
//     document.write(arr[i].groupItem[j].name)
//     document.write('<br>')
//   }
//   document.write('<br>')
// }

// let a = 'j' // 字符串
// let b= 123 // 数字
// let c = true // 布尔值
// let obj = { // 对象
//   name: 'j',
//   age: 18,
//   ish: true,
//   obj: {
//     jj: 'ddf'
//   },
//   arr: [1,2,3]
// }

// let arr1 = [1,2,3];

// let obj = {
//   name: 'hhjj',
//   age: 18,
//   info: [
//     {
//       name: 'dfdf'
//     },
//     {
//       name: 'dfdf1'
//     },
//     {
//       name: 'dfdf2'
//     }
//   ]
// }
// obj['age'] == obj.age

// let stuObj = {
//   'name': 'hh', //键值对 key-value
//   'age': 1,
//   'ish': true,
//   'arr': [1,2,3,4]
// }
// console.log(stuObj.name, stuObj['name'])

// for(let i = 0; i<stuObj.arr.length; i++) {
//   console.log(stuObj.arr[i])
// }

// let arr = [
//   {
//     name: "dfdf",
//     age: 18,
//   },
//   {
//     name: "dfdffdgfd",
//     age: 13,
//   },
// ];

// console.log(arr[0].name);


// let arr = [];
// console.log(arr.length)

// let arr = [1,2]
// arr.push(1)
// console.log(arr)

// //定义数组
// let arr = ['HTML','CSS','JavaScript']
// //1、push:动态的向数组的尾部添加一个单元
// arr.push('Nodejs')
// console.log(arr);//['HTML', 'CSS', 'JavaScript', 'Nodejs']
// arr.push('Vue');
// console.log(arr);//['HTML', 'CSS', 'JavaScript', 'Nodejs', 'Vue']
// //2、unshift:动态的向数组的头部添加一个单元
// arr.unshift('VS Code');
// console.log(arr);//['VS Code', 'HTML', 'CSS', 'JavaScript', 'Nodejs', 'Vue']
// //3、pop:删除最后一个单元
// arr.pop()
// console.log(arr);//['VS Code', 'HTML', 'CSS', 'JavaScript', 'Nodejs']
// //4、shift：删除第一个单元
// arr.shift()
// console.log(arr);//['HTML', 'CSS', 'JavaScript', 'Nodejs']
// //5、splice(索引,长度,替换值)：动态删除任意单元
// arr.splice(2,1,1)//从索引值为2的位置开始删除1个单元  
// console.log(arr);
// //6、join():将数组转换成字符串（自身不受影响）
// var arr1 =  arr.join('+')
// console.log(arr1, arr);
// //7、reverse():将数组的元素反转（改变的是自身）
// var arr2 = arr.reverse()
// console.log(arr2, arr)
// // //8、sort():将数组中均速排序
// let arr3 = [8,6,9,7,5,2,3,5,1,2];
// // let arr4 = arr3.sort((a,b)=>a-b);// 升序 sort()
// let arr4 = arr3.sort((a,b)=>b-a);// 降序
// console.log(arr4);
// //9、concat(): 数组拼接，并返回最新长度
// let arr5 = [1,'20','3']
// let arr6 = arr4.concat(arr5)//[1, 2, 2, 3, 5, 5, 6, 7, 8, 9, '1', '20', '3'] // 数组拼接
// console.log(arr6, arr4, arr5);
// //10、indexOf(): 查询匹配的元素的索引（找不到则返回-1）
// console.log(arr6.indexOf(5));//4
    
//练习
// let arr7 = [1,2,3,4,5,6,7,8,9];
// //使用数组方法splice 添加
// let arr8 = arr7.splice(9,0,10);//从数组中添加或删除，并返回最新长度
// console.log(arr7, arr8);//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// //使用数组方法splice 替换
// let arr9 = arr7.splice(8,1,11);
// console.log(arr7)
// //匀速排序
// let arr10 = ['9','2','3','5','8','1'];
// console.log(arr10.sort());//['1', '2', '3', '5', '8', '9']
// let arr11 = ['9','2','3','5','8','1','a','b','c','d']
// console.log(arr11.sort());//['1', '2', '3', '5', '8', '9', 'a', 'b', 'c', 'd']
// let arr12 = [1,2,3,4,5,6,7,'a','b','c','d'];
// console.log(arr12.sort());//[1, 2, 3, 4, 5, 6, 7, 'a', 'b', 'c', 'd']
// let arr13 = ['你','我','他']
// console.log(arr13.sort());//['他', '你', '我']ps:中文排序是以字符编码来排序的

// var arr = [
//  [1, 2, 3],
//  ['4', '5', '6'],
//  [7, 8, 9,]
// ]
// for (var i = 0; i < arr.length; i++) {
//   console.log(i);
//   for (var j = 0; j < arr[i].length; j++) {
//     console.log(arr[i][j]);
//   }
// }

// var arr1 = [1,2,3,4,5,6]
// for(var element of arr1){
//  console.log(element);
// }

// var obj = {
//  "name":'⼩明', // 键值对
//  age:18,
//  sex:'男'
//  }
// for(var key in obj){
//  console.log(key,obj[key]);// obj['name']
// }

// let arr = [
//   {
//     name: '19',
//     age: 45
//   },
//   {
//     name: '22',
//     age: 19
//   }, 
//   {
//     name: '33',
//     age: 23
//   },
//   {
//     name: '22',
//     age: 5
//   }, 
//   {
//     name: '33',
//     age: 6
//   }
// ]

// let firstAdult = arr.find(item=>item.age>18)
// console.log(firstAdult)

// // 只要有一个为真，返回的结果就是真，全部为假，返回的结果才是假
// if(arr.some(item=>item.age>18)) {
//   alert('包含成年人')
// } else {
//   alert('不包含成年人')
// }

// 所有的都为真才返回真，任何为假都是假
// if(arr.every(item=>item.age>18)) {
//   alert('都是成年人')
// } else {
//   alert('不都是成年人')
// }
// let isAdult = true
// for(let i = 0; i<arr.length; i++) {
//   if(arr[i].age<18) {
//     isAdult = false
//   }
// }
// if(isAdult) {
//   alert('都是成年人')
// } else {
//   alert('不都是成年人')
// }



// let searchVal = '2';
// let arr1 = arr.filter((item)=>item.name.indexOf(searchVal)>-1)
// let arr2 = arr.filter((item)=>item.age>11).map(item=>({
//   name: item.name + 'a',
//   age: item.age +1
// }))
// console.log(arr1,arr2)

// //filter过滤
// var num1 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]
// var FilterNum = num1.filter(function(item,index){
//  return item > 10;
// })
// console.log(FilterNum);
// console.log(num1)

// arr.forEach(element => {
//   console.log(`我叫${element.name}，我今年${element.age}岁`)
// });

// var num = [1,2,3,4,5,6];
// let nums = num.map(function(index){
//  return index * 2
// })
// let nums = num.map((index) => index * 2) // 箭头函数当他的表达式只有一个不需要加return
// console.log(nums)
// console.log(num)

// let arrA = arr.map((item) => (
//   {
//     name: item.name + 'a',
//     age: item.age+1
//   }
// ))

// let arrA1 = arr.map((item) => {
//   return {
//     name: item.name + 'a',
//     age: item.age+1
//   }
// })
// console.log(arrA);

//reduce()迭代器 累加器
// var num2 = [1,2,3,4,5]
// // 总和
// var sum = num2.reduce((a,b) => {
//  return a + b;
// },0)
// // 最大值
// const max = num2.reduce((a,b)=>Math.max(a,b), -Infinity)
// // 最小值
// const min = num2.reduce((a,b)=>Math.min(a,b), Infinity)
// console.log(num2)
// console.log(sum, max, min)

// var num3 = [1,2,3,4,5,6]
// 所有子项都满足条件则返回真，否则返回假
// let num4 = num3.every((item,index,self) => {
//  if(item < 5 ){
//  return item
//  }
// })
// console.log(num4)
// console.log(num3)


// index:索引
// item: 子项
// arr: 当前数组


// let num5 = [1,2,3,4,5,6,74,89]
// 返回第一个满足条件的子项
// let num6 = num5.find((item, index, array) => {
//  return item > 4
// })

// console.log(num6);//

// let num7 = [5,12,8,130,44];
// // 返回第一个满足条件的索引
// let flgs = num7.findIndex((item)=> {
//   return item > 20
// //  if(item > 20){
// //  return item;
// //  }
// });
// num7.indexOf(130)
// console.log(flgs);//-1

// var a = 'h',
//  b = 'e',
//  c = 'l',
//  d = 'l',
//  e = 'o';
// //Array.of() => 把值转换成数组
// var arr = Array.of(a,b,c,d,e);
// console.log(arr);
//Array.from() => 将字符串拆分为数组
// // var arr1 = 'hello world'
// // console.log(Array.from(arr1));

// var num8 = [1,2,3,4,5,6];
// console.log(num8)
// //num8 = num8.fill(6666);
// //console.log(num8);//[6666, 6666, 6666, 6666, 6666, 6666]
// // 指定替换 语法:Array.fill(替换的值，开始的索引，结束的索引(不含⾃身))
// num8 = num8.fill('99',3,4)
// console.log(num8);


// 数组去重
// var num = [1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9];
// //设置初始值
// var temp = [];
// //给每⼀个数字的值遍历，然后做判断
// for (let i = 0; i < num.length; i++) {
//  //判断
//  console.log(temp)
//  if (temp.indexOf(num[i]) == -1) { // == -1 代表此处不存在这个值
//    temp.push(num[i]);
//  }
// }
// console.log(temp);

// 数组去重
// var num1 = [1,1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9];
// //设置初始值
// var temp1 = [];//⽤来存放num1中的元素
// for(var i=0;i<num1.length;i++){
//  // 如果当前数组的第i项在数组中第⼀次出现,就把当前项存⼊temp中
// //  console.log(num1.indexOf(num1[i]), i)
//  if(num1.indexOf(num1[i]) == i){
//  temp1.push(num1[i]);
//  }
// }

// console.log(temp1);

// function gg(arr) {
//   var temp1 = [];//⽤来存放num1中的元素
//   for(var i=0;i<arr.length;i++){
//   // 如果当前数组的第i项在数组中第⼀次出现,就把当前项存⼊temp中
//   //  console.log(num1.indexOf(num1[i]), i)
//     if(arr.indexOf(arr[i]) == i){
//     temp1.push(arr[i]);
//     }
//   }
//   return temp1
// }
// console.log(gg(num1))
// let a = 1; let b=4
// console.log(Math.floor(Math.random() * (b - a + 1) + a))//1-4
// console.log(Math.ceil(Math.random() * (b - a) + a))//2-4

// 注意：获取a-b之间的随机数公式
// Math.floor(Math.random() * (b - a + 1) + a)
// Math.ceil(Math.random() * (b - a) + a)
// parseInt(Math.random() * (b - a + a) + a)

// var a = Math.random();
// console.log(a);

// var cc = Math.ceil(Math.random() * 3)
// console.log(cc);//1-3

// const div = document.getElementById('name')
// let arr = ['小明', '小芳', '小紫', '小红'];
// const index = Math.floor(Math.random()*arr.length);
// const r = Math.floor(Math.random()*255);
// const g = Math.floor(Math.random()*255);
// const b = Math.floor(Math.random()*255);
// const a = Math.random();
// div.innerHTML = arr[index];
// div.style.color = `rgba(${r}, ${g}, ${b}, ${a})`